<?php
//   +----------------------------------------------------------------------
//   | Copyright (c) 2015-2025 http://www.hdphp.cn All rights reserved.
//   | Licensed ( http://www.hdphp.cn/licenses/ )
//   | Author: Jack <sophia2152@qq.com>
//   | 官方网址: http://www.hdphp.cn
//   | 这不是一个自由软件！您只能在不用于商业目的的前提下对程序代码进行修改和使用。
//   | 任何企业和个人不允许对程序代码以任何形式任何目的再发布。
//   +----------------------------------------------------------------------
namespace app\model\wechat;

use app\model\user\User;
use hdphp\basic\BaseModel;
use hdphp\traits\ModelTrait;
use think\Model;

/**
 * Class：WechatUser
 * 创建人：Jack
 * 创建时间：2023/12/2 11:57
 * @package app\model\wechat
 */
class WechatUser extends BaseModel
{
    use ModelTrait;

    /**
     * 数据表主键
     * @var string
     */
    protected $pk = 'uid';

    /**
     * 模型名称
     * @var string
     */
    protected $name = 'wechat_user';

    protected $insert = ['create_time'];

    /**
     * 注释：setCreateTimeAttr
     * 创建人：Jack
     * 创建时间：2023/12/2 11:59
     * @return int
     */
    public static function setCreateTimeAttr()
    {
        return time();
    }

    protected function getCreateTimeAttr($value)
    {
        if ($value) return date('Y-m-d H:i', (int)$value);
        return $value;
    }

    /**
     * 关联user
     * @return \think\model\relation\HasOne
     */
    public function user()
    {
        return $this->hasOne(User::class, 'uid', 'uid');
    }

    /**
     * 注释：绑定公众号
     * 创建人：Jack
     * 创建时间：2023/12/4 8:05
     * @param Model $query
     * @param       $value
     * @return mixed
     */
    public function searchUnionidAttr($query, $value)
    {
        return $query->where('unionid', $value);
    }

    /**
     * 注释：公众号唯一id
     * 创建人：Jack
     * 创建时间：2023/12/4 8:22
     * @param Model $query
     * @param       $value
     * @return mixed
     */
    public function searchOpenidAttr($query, $value)
    {
        return $query->where('openid', $value);
    }

    /**
     * 注释：分组
     * 创建人：Jack
     * 创建时间：2023/12/4 8:22
     * @param Model $query
     * @param       $value
     * @return mixed
     */
    public function searchGroupIdAttr($query, $value)
    {
        return $query->where('group_id', $value);
    }

    /**
     * 注释：性别
     * 创建人：Jack
     * 创建时间：2023/12/4 8:22
     * @param Model $query
     * @param       $value
     * @return mixed
     */
    public function searchSexAttr($query, $value)
    {
        return $query->where('sex', $value);
    }

    /**
     * 注释：是否关注
     * 创建人：Jack
     * 创建时间：2023/12/4 8:22
     * @param Model $query
     * @param       $value
     * @return mixed
     */
    public function searchSubscribeAttr($query, $value)
    {
        return $query->where('subscribe', $value);
    }

    /**
     * 注释：用户类型
     * 创建人：Jack
     * 创建时间：2023/12/4 8:22
     * @param Model $query
     * @param       $value
     * @return mixed
     */
    public function searchTypeAttr($query, $value)
    {
        return $query->where('user_type', $value);
    }

    /**
     * 注释：用户类型
     * 创建人：Jack
     * 创建时间：2023/12/4 8:22
     * @param Model $query
     * @param       $value
     * @return mixed
     */
    public function searchUserTypeAttr($query, $value)
    {
        return $query->where('user_type', $value);
    }

    /**
     * 注释：是否注销
     * 创建人：Jack
     * 创建时间：2023/12/4 8:23
     * @param Model $query
     * @param       $value
     * @return void
     */
    public function searchIsDeleteAttr($query, $value)
    {
        if ($value !== '') return $query->where('is_delete', $value);
    }
}
